package vip.liux.backend.application.service.pay.dto.transfer;

import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import vip.liux.application.dots.CreationAuditedEntityDto;
import vip.liux.contracts.shared.enums.pay.PayTransferStatus;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Map;

@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
public class PayTransferDto extends CreationAuditedEntityDto<Long> {

    private String transferNo;

    private Long appId;

    private String appName;

    private Long channelId;

    private String channelCode;

    private String merchantTransferId;

    private PayTransferStatus status;

    private LocalDateTime successTime;

    private BigDecimal price;

    private String subject;

    private String userName;

    private String userAccount;

    private String notifyUrl;

    private String userIp;

    private Map<String, String> channelExtras;

    private String channelTransferNo;

    private String channelErrorCode;

    private String channelErrorMsg;

    private String channelNotifyData;

    /**
     * 渠道 package 信息
     * <p>
     * 特殊：目前只有微信转账有这个东西！！！
     *
     * @see <a href="https://pay.weixin.qq.com/doc/v3/merchant/4012716430">JSAPI 调起用户确认收款</a>
     */
    private String channelPackageInfo;
}
